combit List & Label 29 - .NET Hilfe
Einführung in die Programmierung / Weitere wichtige Konzepte / Variablen, Felder und Datentypen
In diesem Thema
    Variablen, Felder und Datentypen
    In diesem Thema

    Variablen und Felder sind die dynamischen Textblöcke für Berichte und enthalten den dynamischen Teil der Daten. Variablen ändern sich typischerweise einmal pro Seite oder Bericht – ein Beispiel sind die Kopfdaten einer Rechnung mit Rechnungsnummer und Adressat. Felder hingegen ändern sich in der Regel für jeden Datensatz, typische Vertreter sind also z.B. die Postendaten einer Rechnung.

    Im Designer werden Variablen stets außerhalb, Felder nur innerhalb des Berichtscontainers (des "Tabellenbereichs") angeboten und können auch nur dort verwendet werden. Die Trennung dient vor allem dazu, dem Endanwender das Leben leichter zu machen – wenn er ein Feld in den "Außenbereich" platzieren würde, wäre das Ergebnis je nach Druckreihenfolge entweder der Inhalt des Ersten oder Letzten Datensatzes.

    Für beide Baustein-Typen gilt, dass sie hierarchisch angeordnet werden können – im Designer macht sich dies durch eine Ordnerstruktur bemerkbar. Die Datenbank-Tabellennamen werden von der Datenbindung automatisch berücksichtigt, so dass alle Daten der "Bestelldaten"-Tabelle in einem Ordner "Bestelldaten" dargestellt werden.

    Eigene Daten können ebenfalls hierarchisch angeordnet werden, indem ein Punkt als Hierarchietrenner verwendet wird (also z.B. "Zusatzdaten.Benutzername").

     

    Variablen und Felder bei Datenbindung

    Wenn in einer 1:n hierarchisch verknüpften Datenstruktur wie z.B. "Rechnungskopf" und "Rechnungsposten" die Bestelldaten-Tabelle als Variablen, die Bestellposten hingegen als Felder angemeldet werden sollen, kann dies über die Eigenschaften DataMember und AutoMasterMode der Komponente erreicht werden:

    ListLabel LL = new ListLabel();
    LL.DataSource = CreateDataSet();
    
    // Define table 'InvoiceHeader' as variables
    LL.DataMember = "InvoiceHeader";
    LL.AutoMasterMode = LlAutoMasterMode.AsVariables;
    
    LL.Design();
    LL.Dispose();
    
    Dim LL As New ListLabel()
    LL.DataSource = CreateDataSet()
    
    ' Define table 'InvoiceHeader' as variables
    LL.DataMember = "InvoiceHeader"
    LL.AutoMasterMode = LlAutoMasterMode.AsVariables
    
    LL.Design()
    LL.Dispose()
    

    Zur Druckzeit wird in diesem Falle automatisch ein Seriendruck generiert, wenn also z.B. ein Rechnungsformular designed wurde, wird für jeden Datensatz aus der Rechnungskopf-Tabelle eine eigene Rechnung mit eigener Seitennummerierung, Summierung etc. erzeugt.

     


    Auswirkung der Option AutoMasterMode. Links: "AsVariables", rechts "AsFields".

     

    Datentypen

    Variablen und Felder werden typisiert übergeben, d.h. je nach Inhalt in der Datenbank als Text, Zahl etc. Dies besorgt die Datenbindung in der Regel automatisch, eine explizite Übergabe des Typs ist nur dann notwendig, wenn zusätzlich eigene Daten übergeben werden (siehe auch Zusätzliche Inhalte übergeben). Auch dann wird meist schon der passende Datentyp vorgewählt (z.B. bei Übergabe von DateTime-Objekten).

    Die folgende Tabelle zeigt die wichtigsten Datentypen:

    Datentyp Verwendung
    LlFieldType.Text Text.
    LlFieldType.RTF RTF-formatierter Text. Dieser Feldtyp kann im Designer direkt in einem RTF-Feld bzw. RTF-Objekt verwendet werden.
    LlFieldType.Numeric
    LlFieldType.Numeric_Integer
    Zahl. Die Datenbindung unterscheidet automatisch zwischen Gleitkommazahlen und Integer-Werten.
    LlFieldType.Boolean Logische Werte.
    LlFieldType.Date Datums- und Zeitwerte (DateTime).
    LlFieldType.Drawing Grafik. In der Regel wird der Dateiname angegeben, für Bitmaps und EMF-Dateien ist auch eine direkte Übergabe des Speicherhandles möglich. Die Datenbindung untersucht automatisch Byte[]-Felder auf Ihren Inhalt und meldet diese als Grafik an, wenn sich ein passendes Format findet.
    LlFieldType.Barcode Barcode. Barcodes können am einfachsten als Instanzen der LlBarcode-Klasse direkt in den Add-Methoden der Variables- und Fields-Eigenschaft übergeben werden.
    LlFieldType.HTML HTML. Der Inhalt der Variablen ist ein gültiger HTML-Stream, ein Dateiname oder eine URL.